home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / MAC_PRGS.M2 / MAGICMAC.M < prev    next >
Encoding:
Text File  |  1995-11-24  |  1.6 KB  |  66 lines

  1. MODULE MagiCMac;
  2.  
  3. (*
  4.  * MagiCMac-Accessory
  5.  *
  6.  * MagiC-Pendant zu Mac-Kernelroutinen von MagiCMac.
  7.  *
  8.  * Autor:
  9.  *  Thomas Tempelmann
  10.  *)
  11.  
  12. (*
  13. So funktioniert's:
  14.  
  15. Zuerst muß sich dieses Programm beim MagiCMac-Kernel anmelden
  16. und dabei die Adresse einer Routine übergeben, die der Kernel
  17. später aufrufen wird.
  18.  
  19. Wenn MagiC in den Hintergrund geschaltet werden soll (z.B.
  20. durch Cmd-W), wird dies in der Regel in einer Interrupt-
  21. Routine des Kernels erkannt. Diese Intr-Routine wird aber
  22. nur dann aktiv, wenn unter MagiC gerade keine Funktion
  23. im Supervisor-Modus ausgeführt wurde. So wird der aktuelle
  24. MagiC-Anwenderprozeß unterbrochen. Um wieder Zeit an MagiC
  25. abzugeben, wird zurück 
  26.  
  27. *)
  28.  
  29. (*$E MAC     Endung für Linker: Datei mit Endung ACC erzeugen *)
  30. (*$R-,S-     Keine Bereichs-, Überlauf- und Stackprüfung *)
  31.  
  32. FROM SYSTEM IMPORT ADR;
  33.  
  34. IMPORT GEMEnv;
  35. FROM AESForms IMPORT FormAlert;
  36. FROM AESEvents IMPORT MessageEvent, MessageBuffer, accOpen;
  37. FROM AESMenus IMPORT RegisterAcc;
  38. FROM PrgCtrl IMPORT Accessory;
  39. IMPORT Strings, HdlError, EasyExceptions;
  40.  
  41. VAR
  42.   devHdl: GEMEnv.DeviceHandle;
  43.   gemHdl: GEMEnv.GemHandle;
  44.   menuID: CARDINAL;
  45.   menuEntry: ARRAY[0..19] OF CHAR; (* must be global! *)
  46.   msg: MessageBuffer;
  47.   done: BOOLEAN;
  48.   retButton: CARDINAL;
  49.  
  50. BEGIN
  51.   GEMEnv.InitGem (GEMEnv.RC, devHdl, done);
  52.   IF done THEN
  53.     gemHdl:= GEMEnv.CurrGemHandle ();
  54.     IF Accessory () THEN
  55.       menuEntry:= '  MagiCMac Services';
  56.       RegisterAcc(ADR(menuEntry), menuID , done);
  57.     END;
  58.     LOOP
  59.       MessageEvent(msg);
  60.       IF (msg.msgType = accOpen) THEN
  61.         
  62.       END
  63.     END
  64.   END
  65. END MagiCMac.
  66.